home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / vol_100 / 170_01 / string.c < prev    next >
Text File  |  1980-01-01  |  2KB  |  120 lines

  1. /************************************************************
  2.  *        IBM PC "C" Bulletin Board                         *
  3.  *        Tulsa, OK    918-664-8737                         *
  4.  *        Lynn Long, SYSOP   300/1200 XMODEM                *
  5.  ************************************************************/
  6.  
  7.  
  8.  
  9.  
  10. char *strcpy(dest, src)
  11. register char *dest, *src;
  12. {
  13.     char *sav;
  14.  
  15.     sav = dest;
  16.     while (*dest++ = *src++)
  17.         ;
  18.     return sav;
  19. }
  20.  
  21. char *strncpy(dest, src, len)
  22. register char *dest, *src;
  23. {
  24.     char *sav;
  25.  
  26.     sav = dest;
  27.     while (len--) {
  28.         if ((*dest++ = *src++) == 0) {
  29.             while (len--)
  30.                 *dest++ = 0;
  31.             break;
  32.         }
  33.     }
  34.     return sav;
  35. }
  36.  
  37. char *strcat(dest, src)
  38. register char *dest, *src;
  39. {
  40.     char *sav;
  41.  
  42.     sav = dest;
  43.     while (*dest)
  44.         ++dest;
  45.     while (*dest++ = *src++)
  46.         ;
  47.     return sav;
  48. }
  49.  
  50. char *strncat(dest, src, len)
  51. register char *dest, *src;
  52. {
  53.     char *sav;
  54.  
  55.     sav = dest;
  56.     while (*dest)
  57.         ++dest;
  58.     do {
  59.         if (len-- == 0) {
  60.             *dest = 0;
  61.             break;
  62.         }
  63.     } while (*dest++ = *src++);
  64.     return sav;
  65. }
  66.  
  67. strcmp(a, b)
  68. register char *a, *b;
  69. {
  70.     int i;
  71.  
  72.     while ((i = *a - *b++) == 0 && *a++)
  73.         ;
  74.     return i;
  75. }
  76.  
  77. strncmp(a, b, len)
  78. register char *a, *b;
  79. {
  80.     int i = 0;
  81.  
  82.     while (len-- && (i = *a - *b++) == 0 && *a++)
  83.         ;
  84.     return i;
  85. }
  86.  
  87. strlen(str)
  88. register char *str;
  89. {
  90.     register int len = 0;
  91.  
  92.     while (*str++)
  93.         ++len;
  94.     return len;
  95. }
  96.  
  97. char *index(str, c)
  98. register char *str; register int c;
  99. {
  100.     while (*str) {
  101.         if (*str == c)
  102.             return str;
  103.         ++str;
  104.     }
  105.     return (char *)0;
  106. }
  107.  
  108. char *rindex(str, c)
  109. register char *str; int c;
  110. {
  111.     register char *cp;
  112.  
  113.     for (cp = str ; *cp++ ; )
  114.         ;
  115.     while (cp > str)
  116.         if (*--cp == c)
  117.             return cp;
  118.     return (char *)0;
  119. }
  120.